package com.sistema.escola.controller;

import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;

import com.sistema.escola.domain.dao.usuario.UsuarioDAO;
import com.sistema.escola.domain.model.usuario.Usuario;
import com.sistema.escola.domain.model.usuario.UsuarioSession;

@Resource
public class LoginController {

	private Result result;
    private UsuarioDAO usuarioDAO;
    private UsuarioSession usuarioSession;
 
    public LoginController(Result result, UsuarioDAO usuarioDAO, UsuarioSession usuarioSession) {
        this.result = result;
        this.usuarioDAO = usuarioDAO;
        this.usuarioSession = usuarioSession;
    }
 
    @Get
    @Path("/login")
    public void login() {
    	
    }
 
    @Post
    @Path("/login")
    public void login(Usuario usuario) {
        try {
            Usuario u = usuarioDAO.findByEmailAndPassword(usuario.getEmail(), usuario.getPassword());

            usuarioSession.setUsuario(u);
            
            result.redirectTo(HomeController.class).index();
        } catch (Exception e) {
            e.printStackTrace();
            result.forwardTo(this).login();
        }
    }
 
    @Get
    @Path("/logout")
    public void logout() {
        usuarioSession.setUsuario(null);
        result.redirectTo(this).login();
    }
	
}
